Microcomputers typically have the capacity for making instruction prefetch requests and requests for operands before they are actually needed by the microcomputer. These requests are then placed in queue until such time as they can be obtained, typically from external memory.
Microcomputers, during the execution of instructions, however, will sometimes have a change in flow, also called a branch. An example of a branch is a compare function with alternate destinations; if A is greater than B, go to C, otherwise go to D. When a branch occurs, it means that the previously requested instructions and data which were in anticipation of circumstances which are now not going to happen, are no longer useful. In the prior art the previously requested data or instructions were fetched anyway. The reason was because the requests were executed in the order in which they were received. But even if they were not executed in the order received, an attempt to prioritize between pending data and instruction requests would still result in wasting the time-executing a fetch of information that was not going to be used.